package com.chenjt.netty.fourteen_stickyAndUnpackPackage.stickyPackageDemo.server;

import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;

/**
 * 注释：
 *
 * @author chenjt
 * @date 2024/9/6 11:02
 */
public class MyServerInitializer extends ChannelInitializer<SocketChannel> {

    /**
     * 每当有一个客户端连接的时候，该方法就会被调用一次，
     * 因为每个客户端连接上来都是单独的一个pipeline，都不会共享同一个 pipeline，
     * 所以 MyServerHandler 每次都是new一个新的对象出来使用的
     * @param ch
     * @throws Exception
     */
    @Override
    protected void initChannel(SocketChannel ch) throws Exception {
        // 每连接一个客户端，这里就会打印一次，证明了一个客户端连接时，该方法就会被调用一次
        System.out.println(this);

        ChannelPipeline pipeline = ch.pipeline();

        pipeline.addLast(new MyServerHandler());
    }

}
